package com.yiren.backstage.judge.services.standard;

import com.yiren.backstage.currency.bean.CarStateBean;
import com.yiren.backstage.currency.entity.JudgeDetailsEntity;
import com.yiren.backstage.currency.enums.ResultStateEnum;
import com.yiren.backstage.judge.thread.AutoJudgeThread;

/**
 * Time:2022/4/13 11:07
 * Author:xiaozan
 * Description:检测条件要素和执行要素结果
 */
public interface ICheckElementResultService {

    /**
     * 是否符合条件要素
     * @param judgeDetailsEntity
     * @param startCarState  开始车辆状态
     * @param mStartTime 开始时间
     * @return
     */
    boolean accordConditionElement(AutoJudgeThread autoJudgeThread,JudgeDetailsEntity judgeDetailsEntity, CarStateBean startCarState, long mStartTime);

    /**
     * 等待是否符合执行要素
     * @param judgeDetailsEntity
     * @param accordCarState 是否符合车辆状态
     * @return
     */
    boolean waitAccordExecuteElement(JudgeDetailsEntity judgeDetailsEntity,boolean accordCarState);

    /**
     * 后等待是否符合执行要素
     * @param judgeDetailsEntity
     * @param accordCarState 是否符合车辆状态
     * @return
     */
    ResultStateEnum afterWaitAccordExecuteElement(JudgeDetailsEntity judgeDetailsEntity, boolean accordCarState);


    /**
     * 累计是否符合执行要素
     * @param judgeDetailsEntity
     * @param accordCarState  是否符合车辆状态
     * @return
     */
    boolean totalAccordExecuteElement(JudgeDetailsEntity judgeDetailsEntity,boolean accordCarState);
}
